Programmable logic switches are used in devices requiring reconfiguration of logical operation circuits and wiring boards, such as field programmable gate arrays (FPGAs), and include logic switches and memories. A programmable logic switch turns on and off its logic switches based on data stored in its memories. Volatile memories such as static random access memories (SRAMs) have conventionally been used as the aforementioned memories. However, when power is turned off, data stored in each volatile memory is erased. As a result, data should be rewritten to the memory when power is turned on next time.
Another known method is to use nonvolatile flash memories as the memories of programmable logic switches. In an example of such a programmable logic switch, one cell of the memory includes two nonvolatile memory elements and one switching transistor (pass transistor). Flash memory elements can be used as the memory elements. A power supply voltage or a voltage of 0 V is inputted to the gate of the switching transistor via one of the two flash memory elements. Employing such a structure in the memory reduces the area of the programmable logic switch as compared with a case where SRAMs are used as the memory elements.
Another known method is to use anti-fuse elements in an FPGA. In this method, the resistance of a specific anti-fuse element is changed to a low value to electrically connect a plurality of wiring lines to establish various circuits.
Since whether the wiring lines are connected or disconnected is irreversible in an FPGA employing this method, there is no fear of unexpected change in circuit information. This makes it possible to use this FPGA under a circumstance in which FPGAs including flash memories are difficult to be used. The disadvantage of this FPGA, however, is that the wiring line that is once connected cannot be disconnected again.